/**
 * 
 */
package cn.biplam.common.file.importfile;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import cn.biplam.common.file.importfile.sheet.FieldSheet;
import cn.biplam.common.file.importfile.sheet.TableSheet;
import cn.biplam.common.wrapper.ErrorMessage;

/**
 * Excel文件导入操作类
 * @author WangSong 2009-7-28下午02:36:11
 * @version 1.0
 */
public class ExcelFileSheet {
	
	/** Excel文件Sheet对象*/
	private HSSFSheet sheet;
	/** sheet的行数*/
	private int rowSize;
	
	/** 表信息<列属性名,列属性值>*/
	private TableSheet table;
	/** 列信息<number,<列属性名,列属性值>>*/
	private FieldSheet fields;

	/**
	 * 构造方法
	 * @param path
	 * @param fileName
	 * @throws ErrorMessage 
	 */
	public ExcelFileSheet(HSSFSheet sheet,int rowSize) throws ErrorMessage {
		this.sheet = sheet;
		this.rowSize = rowSize;
		init();
	}
	
	/**
	 * 初始化
	 * @throws ErrorMessage 
	 */
	private void init() throws ErrorMessage{
		table = new TableSheet(sheet);
		fields = new FieldSheet(sheet,rowSize);
	}

	
	/**
	 * 取表信息
	 * @return
	 */
	public TableSheet getTable(){
		return table;
	}
	
	/**
	 * 取字段信息
	 * @return
	 */
	public FieldSheet getFields(){
		return fields;
	}
	
	/**字段名称列表
	 */
	public enum Name{
		/** 表名(物理名称)*/
		TableName,
		/** 表中文名(逻辑名称)*/
		TableCName,
		/** 表说明*/
		TableComment,
		
		/** 列名(物理名称)*/
		ColumnName,
		/** 列中文名(逻辑名称)*/
		ColumnCName,
		/** 列说明*/
		ColumnComment,
		/** 数据类型*/
		ColumnDataType,
		/** 是否可以为空*/
		ColumnNullAble,
		/** 是否是主键*/
		ColumnIsPk,
		/** 是否是外键*/
		ColumnIsFk,
	
		/** 外键表名称*/
		FkForeignTableName,
		/** 外键表列名称*/
		FkForeignColumnName,
		/** 主键表名称*/
		FKMainTableName,
		/** 主键表列名称*/
		FkMainColumnName,
		/** 外键名称*/
		FkName;
		
	}
	
	/**
	 * 
	 * @param args
	 * @throws ErrorMessage 
	 */
	public static void main(String[] args) throws ErrorMessage {
		
	}

}
